﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Fwk.Presentacion;
using Servidor.Documentos;
using Servidor.Servicios;

namespace Presentacion.Web.Seguridad
{
    public partial class FrmUsuario : PaginaABM
    {
        SvcUsuario svc= new SvcUsuario();
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtNomUsuBus.Text = null;
            //data source: propiedad q le seteo el origen de datos
            grdGrupo.DataSource = new DocUsuario();
            //data bind: actualiza los datos
            grdGrupo.DataBind();
            udpUsuario.Update();

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarGrilla();
            udpUsuario.Update();
           
        }
        public void CargarGrilla()
        {
            //Acceder al Servicio para cargar los grupos
            DocUsuario docUsuario = svc.LeerUsuario(txtNomUsuBus.Text);
            //Asigno el documento con la tabla
            grdUsuario.DataSource = docUsuario.Usuario;
            //Dibujar Grilla
            grdUsuario.DataBind();

        }
        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            AccionABM = Accion.Nuevo;
            udpUsuario.Update();
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            AccionABM = Accion.Modificar;
            //docUsuario--Variable
            //DocUsuarui--Documento
            Guid ID_Usuario = (Guid)grdUsuario.SelectedDataKey.Value;
            DocUsuario docUsuario = svc.LeerUsuarioPorId(ID_Usuario);
            DocUsuario.UsuarioRow usuarioRow;
            usuarioRow = docUsuario.Usuario[0];//0 para que tome la primer fila de ese registro
            //Agrego a los campos la info que encuentro
            txtUsuario.Text = usuarioRow.NombreUsuario;
            txtContraseña.Text = usuarioRow.Contrasenia;
            udpUsuario.Update();
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            Guid ID_Usuario = (Guid)grdUsuario.SelectedDataKey.Value;
            DocUsuario docUsuario = svc.LeerUsuarioPorId(ID_Usuario);
            docUsuario.Usuario[0].Delete();
            svc.Guardar(docUsuario);
            CargarGrilla();
            udpUsuario.Update();
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            DocUsuario docUsuario = new DocUsuario();
            DocUsuario.UsuarioRow usuarioRow;
            if (AccionABM.Equals(Accion.Nuevo))
            {
                usuarioRow = docUsuario.Usuario.NewUsuarioRow();
                usuarioRow.ID_Usuario= Guid.NewGuid();
                usuarioRow.NombreUsuario = txtUsuario.Text;
                usuarioRow.Contrasenia=txtContraseña.Text;
                docUsuario.Usuario.AddUsuarioRow(usuarioRow);            
            }
            else
            {
                Guid ID_Usuario = (Guid)grdUsuario.SelectedDataKey.Value;
                docUsuario = svc.LeerUsuarioPorId(ID_Usuario);
                usuarioRow = docUsuario.Usuario[0];
                usuarioRow.NombreUsuario = txtUsuario.Text;
                usuarioRow.Contrasenia = txtContraseña.Text;          
            }
            svc.Guardar(docUsuario);
            CargarGrilla();
            AccionABM = Accion.Ninguno;
            udpUsuario.Update();
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            AccionABM = Accion.Ninguno;
            udpUsuario.Update();
        }
        
    }
}
